package com.yuba.front.controller.tags;

import cn.dev33.satoken.annotation.SaIgnore;
import com.yuba.common.core.domain.R;
import com.yuba.common.core.utils.StringUtils;
import com.yuba.common.json.utils.JsonUtils;
import com.yuba.common.web.core.BaseController;
import com.yuba.front.domain.vo.TagHotVo;
import com.yuba.front.service.ITagsService;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;

import java.util.List;
import java.util.Map;
import java.util.Objects;

/**
 * 前台话题接口
 *
 * @author modakai
 */
@RestController
@RequestMapping("api/tag/")
@RequiredArgsConstructor
public class ApiTagsController extends BaseController {

    private final ITagsService tagsService;

    /**
     * 获取热门话题排行
     * @return 话题热门排行列表
     */
    @SaIgnore // 放行请求
    @GetMapping("get/hot")
    public R<List<TagHotVo>> queryHot() {
        return R.ok(tagsService.getHot());
    }

    /**
     * 根据tagName搜索标签列表
     * @return 标签列表
     */
    @SaIgnore
    @PostMapping("search")
    public R<List<String>> query(@RequestBody String fromData) {
        if (StringUtils.isBlank(fromData)) {
            return R.ok();
        }
        var json = JsonUtils.parseObject(fromData, Map.class);
        // 模糊查询
        return R.ok(tagsService.fuzzyQueryTags(Objects.requireNonNull(json).get("tagName").toString()));
    }
}
